home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / sound / seq_midi_event.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.2 KB  |  55 lines

  1. #ifndef __SOUND_SEQ_MIDI_EVENT_H
  2. #define __SOUND_SEQ_MIDI_EVENT_H
  3.  
  4. /*
  5.  *  MIDI byte <-> sequencer event coder
  6.  *
  7.  *  Copyright (C) 1998,99 Takashi Iwai <tiwai@suse.de>,
  8.  *                        Jaroslav Kysela <perex@perex.cz>
  9.  *
  10.  *   This program is free software; you can redistribute it and/or modify
  11.  *   it under the terms of the GNU General Public License as published by
  12.  *   the Free Software Foundation; either version 2 of the License, or
  13.  *   (at your option) any later version.
  14.  *
  15.  *   This program is distributed in the hope that it will be useful,
  16.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  *   GNU General Public License for more details.
  19.  *
  20.  *   You should have received a copy of the GNU General Public License
  21.  *   along with this program; if not, write to the Free Software
  22.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  23.  */
  24.  
  25. #include "asequencer.h"
  26.  
  27. #define MAX_MIDI_EVENT_BUF    256
  28.  
  29. /* midi status */
  30. struct snd_midi_event {
  31.     int qlen;        /* queue length */
  32.     int read;        /* chars read */
  33.     int type;        /* current event type */
  34.     unsigned char lastcmd;    /* last command (for MIDI state handling) */
  35.     unsigned char nostat;    /* no state flag */
  36.     int bufsize;        /* allocated buffer size */
  37.     unsigned char *buf;    /* input buffer */
  38.     spinlock_t lock;
  39. };
  40.  
  41. int snd_midi_event_new(int bufsize, struct snd_midi_event **rdev);
  42. void snd_midi_event_free(struct snd_midi_event *dev);
  43. void snd_midi_event_reset_encode(struct snd_midi_event *dev);
  44. void snd_midi_event_reset_decode(struct snd_midi_event *dev);
  45. void snd_midi_event_no_status(struct snd_midi_event *dev, int on);
  46. /* encode from byte stream - return number of written bytes if success */
  47. long snd_midi_event_encode(struct snd_midi_event *dev, unsigned char *buf, long count,
  48.                struct snd_seq_event *ev);
  49. int snd_midi_event_encode_byte(struct snd_midi_event *dev, int c, struct snd_seq_event *ev);
  50. /* decode from event to bytes - return number of written bytes if success */
  51. long snd_midi_event_decode(struct snd_midi_event *dev, unsigned char *buf, long count,
  52.                struct snd_seq_event *ev);
  53.  
  54. #endif /* __SOUND_SEQ_MIDI_EVENT_H */
  55.